using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using MakeIT.Framework.Util;
using MakeIT.SGI.ERP.Entidades;
using MakeIT.SGI.ERP.Negocios;

namespace MakeIT.SGI.ERP.Apresentacao
{
	public partial class CadastroAgenda : System.Web.UI.Page
	{

		UsuarioVO usuarioVO = null;
		protected SgiDAOT SgiDAOT = null;

		protected void Page_Load(object sender, EventArgs e)
		{
			this.SgiDAOT = new SgiDAOT();
			usuarioVO = (UsuarioVO)this.Session["userActive"];

			if (!IsPostBack)
			{
				Util.HabilitarCampos(false, this.panelCad);
				atualizarDdlIdFilial(null, null);

				this.panelAgendaxusuario.Enabled = false;
				atualizarDdlAgendaxusuarioIdUsuário(null, null);
				atualizarDdlAgendaxusuarioIdAgendaTipo(null, null);
			}

		}

		protected void Page_Unload(object sender, EventArgs e)
		{
			try
			{
				if (this.SgiDAOT != null)
					this.SgiDAOT.closeDAO();
			}
			catch (Exception ex) {}
		}

		protected void grvResultado_PageIndexChanging(object sender, GridViewPageEventArgs e)
		{
			this.grvResultado.PageIndex = e.NewPageIndex;
			btnPesquisa_Click(null, null);
		}
		protected void atualizarDdlIdFilial(object sender, ImageClickEventArgs e)
		{
			List<FilialVO> idFilialCadVOs = new List<FilialVO>();
			idFilialCadVOs.AddRange(this.SgiDAOT.getFilials());
			this.ddlCadIdFilial.DataSource = idFilialCadVOs;
			this.ddlCadIdFilial.DataBind();

			FilialVO idFilialVO = FilialVO.CreateVO();
			idFilialVO.idFilial = -1;
			idFilialVO.filial = "";
			List<FilialVO> idFilialVOs = new List<FilialVO>();
			idFilialVOs.Add(idFilialVO);
			idFilialVOs.AddRange(this.SgiDAOT.getFilials());
			this.ddlIdFilial.DataSource = idFilialVOs;
			this.ddlIdFilial.DataBind();

		}

		protected void atualizarDdlAgendaxusuarioIdUsuário(object sender, ImageClickEventArgs e)
		{
			List<UsuarioVO> AgendaxusuarioidUsuárioCadVOs = new List<UsuarioVO>();
			AgendaxusuarioidUsuárioCadVOs.AddRange(this.SgiDAOT.getUsuarios());
			this.ddlCadAgendaxusuarioIdUsuário.DataSource = AgendaxusuarioidUsuárioCadVOs;
			this.ddlCadAgendaxusuarioIdUsuário.DataBind();

		}

		protected void atualizarDdlAgendaxusuarioIdAgendaTipo(object sender, ImageClickEventArgs e)
		{
			List<AgendatipoVO> AgendaxusuarioidAgendaTipoCadVOs = new List<AgendatipoVO>();
			AgendatipoVO AgendaxusuarioidAgendaTipoCadVO = AgendatipoVO.CreateVO();
			AgendaxusuarioidAgendaTipoCadVO.idAgendaTipo = -1;
			AgendaxusuarioidAgendaTipoCadVO.agendaTipo = "";
			AgendaxusuarioidAgendaTipoCadVOs.Add(AgendaxusuarioidAgendaTipoCadVO);
			AgendaxusuarioidAgendaTipoCadVOs.AddRange(this.SgiDAOT.getAgendatipos());
			this.ddlCadAgendaxusuarioIdAgendaTipo.DataSource = AgendaxusuarioidAgendaTipoCadVOs;
			this.ddlCadAgendaxusuarioIdAgendaTipo.DataBind();

		}

		/// <summary>
		/// Manipula o evento do botão btnSalvar
		/// </summary>
		/// <param name="sender">Objeto disparador do evento</param>
		/// <param name="e">Argumento do evento</param>
		protected void btnSalvar_Click(object sender, EventArgs e)
		{

			//Declara objetos
			AgendaVO agendaVO = null;
			bool novoRegistro = false;

			try
			{
				//Verifica se o ID é nulo, se sim = cadastro novo
				if (string.IsNullOrEmpty(this.txtCadIdAgenda.Text))
				{
					agendaVO = AgendaVO.CreateVO();
					agendaVO.cadastro = DateTime.Now;
					agendaVO.cadastradoPor = usuarioVO.user;

					novoRegistro = true;

				}
				//Recupera dados para serem alterados
				else
				{
					//Recupera dados
					agendaVO = this.SgiDAOT.getAgenda(Int32.Parse(this.txtCadIdAgenda.Text));
				}

				agendaVO.idFilial = Int32.Parse(this.ddlCadIdFilial.SelectedValue);
				agendaVO.assunto = this.txtCadAssunto.Text;
				if(string.IsNullOrEmpty(this.txtCadLocal.Text))
					agendaVO.local = null;
				else
					agendaVO.local = this.txtCadLocal.Text;
				agendaVO.data = DateTime.Parse(this.txtCadData.Text);
				//agendaVO.inicio = this.txtCadInicio.Text.Ticks;
				//agendaVO.fim = this.txtCadFim.Text.Ticks;
				agendaVO.edicao = DateTime.Now;
				agendaVO.editadoPor = usuarioVO.user;

				//Chama metodo para salvar ou criar novo registro
				if (novoRegistro)
					agendaVO.idAgenda = (int)this.SgiDAOT.newAgenda(agendaVO);
				else
					this.SgiDAOT.setAgenda(agendaVO);

				// Exibe msg de sucesso ao salvar registro
				Util.ExibeAlert(this, "Registro salvo com sucesso!");

				//Popula grid atualizado
				this.btnPesquisa_Click(null, null);

				//Atualiza formulario, apos salvar os dados
				this.txtCadIdAgenda.Text = agendaVO.idAgenda.ToString();
				this.ltCadastradoPor.Text = agendaVO.cadastradoPor;
				this.ltEditadoPor.Text = agendaVO.editadoPor;
				this.ltDataCadastro.Text = agendaVO.cadastro.ToString("dd/MM/yyyy");
				this.ltDataEdicao.Text = agendaVO.edicao.ToString("dd/MM/yyyy");

				//habilita Agendaxusuario
				if (!this.panelAgendaxusuario.Enabled)
				{
					this.ltCadAgendaxusuarioAgenda.Text = agendaVO.ToString();
					Util.HabilitarCampos(false, this.panelAgendaxusuario);
					this.panelAgendaxusuario.Enabled = true;
					this.btnCadAgendaxusuarioSalvar.Enabled = false;
					this.btnCadAgendaxusuarioEditar.Enabled = false;
					this.btnCadAgendaxusuarioExcluir.Enabled = false;
					this.btnCadAgendaxusuarioNovo.Enabled = true;
				}
			}
			catch (Exception ex)
			{

				throw ex;
			}
		}

		/// <summary>
		/// Manipula o evento do botão btnPesquisa
		/// </summary>
		/// <param name="sender">Objeto disparador do evento</param>
		/// <param name="e">Argumento do evento</param>
		protected void btnPesquisa_Click(object sender, EventArgs e)
		{

			//Declara objetos
			int? idAgenda = null;
			int? idFilial = null;
			string assunto = null;
			string local = null;
			DateTime? data = null;

			try
			{

				if (!string.IsNullOrEmpty(this.txtIdAgenda.Text))
				{
					idAgenda = Int32.Parse(this.txtIdAgenda.Text);
				}

				if(!this.ddlIdFilial.SelectedValue.Equals("-1"))
				{
					idFilial = Int32.Parse(this.ddlIdFilial.SelectedValue);
				}

				if (!string.IsNullOrEmpty(this.txtAssunto.Text))
				{
					assunto = this.txtAssunto.Text;
				}

				if (!string.IsNullOrEmpty(this.txtLocal.Text))
				{
					local = this.txtLocal.Text;
				}

				if (!string.IsNullOrEmpty(this.txtData.Text))
				{
					data = DateTime.Parse(this.txtData.Text);
				}


				//Recupera a lista de registros segundo a pesquisa
				this.grvResultado.DataSource = this.SgiDAOT.getAgendas(idAgenda, assunto, idFilial, local, data);

				//Vincula os dados
				this.grvResultado.DataBind();
			}
			catch (Exception ex)
			{

				throw ex;
			}
		}

		/// <summary>
		/// Manipula o evento do botão btnCancelar
		/// </summary>
		/// <param name="sender">Objeto disparador do evento</param>
		/// <param name="e">Argumento do evento</param>
		protected void btnCancelar_Click(object sender, EventArgs e)
		{
			//Volta para a tab page de pesquisa
			//this.tabAgenda.ActiveTabIndex = 0;

			// Desabilita os campos para edição
			Util.HabilitarCampos(false, this.panelCad);

			// Destrava botão de edição
			this.btnEditar.Enabled = (!string.IsNullOrEmpty(this.txtCadIdAgenda.Text));

			// Destrava botão de exclusao
			this.btnExcluir.Enabled = (!string.IsNullOrEmpty(this.txtCadIdAgenda.Text));

			// Detrava botão de novo
			this.btnNovo.Enabled = true;

			// Desabilita o botão salvar
			this.btnSalvar.Enabled = false;

		}

		protected void imgbVisualizar_Click(object sender, ImageClickEventArgs e)
		{
			// Declara objetos
			AgendaVO agendaVO = null;
			int idAgenda = 0;

			try
			{
				//Recupera os argumentos com o ID do objeto
				string[] argumentos = ((ImageButton)sender).CommandArgument.Split(';');
				idAgenda = Int32.Parse(argumentos[0]);

				//Recupera o objeto
				agendaVO = this.SgiDAOT.getAgenda(idAgenda);

				this.txtCadIdAgenda.Text = agendaVO.idAgenda.ToString();
				this.ddlCadIdFilial.SelectedValue = agendaVO.idFilial.ToString();
				this.txtCadAssunto.Text = agendaVO.assunto;
				this.txtCadLocal.Text = agendaVO.local;
				this.txtCadData.Text = agendaVO.data.ToString("dd/MM/yyyy");
				//this.txtCadInicio.Text = agendaVO.inicio;
				//this.txtCadFim.Text = agendaVO.fim;
				this.ltCadastradoPor.Text = agendaVO.cadastradoPor;
				this.ltEditadoPor.Text = agendaVO.editadoPor;
				this.ltDataCadastro.Text = agendaVO.cadastro.ToString("dd/MM/yyyy");
				this.ltDataEdicao.Text = agendaVO.edicao.ToString("dd/MM/yyyy");

				//recupera Agendaxusuario
				Util.LimparCampos(this.panelAgendaxusuario);
				Util.HabilitarCampos(false, this.panelAgendaxusuario);
				this.panelAgendaxusuario.Enabled = true;
				this.ltCadAgendaxusuarioAgenda.Text = agendaVO.ToString();
				this.ltAgendaxusuarioCadastradoPor.Text = "";
				this.ltAgendaxusuarioDataCadastro.Text = "";
				this.ltAgendaxusuarioDataEdicao.Text = "";
				this.ltAgendaxusuarioEditadoPor.Text = "";
				this.btnCadAgendaxusuarioSalvar.Enabled = false;
				this.btnCadAgendaxusuarioEditar.Enabled = false;
				this.btnCadAgendaxusuarioExcluir.Enabled = false;
				this.btnCadAgendaxusuarioNovo.Enabled = true;
				this.grvCadAgendaxAgendaxusuario.DataSource = this.SgiDAOT.getAgendaxusuarios(null, agendaVO.idAgenda, null, null, null, null, null);
				this.grvCadAgendaxAgendaxusuario.DataBind();

				//Habilita tab page do cadastro
				this.tabAgenda.ActiveTabIndex = 1;

				//Desabilita campos para edição
				Util.HabilitarCampos(false, this.panelCad);

				//Desabilita botão salvar
				this.btnSalvar.Enabled = false;

				//Habilita botão editar
				this.btnEditar.Enabled = true;

				//Habilita botão excluir
				this.btnExcluir.Enabled = true;

				//Habilita botão novo
				this.btnNovo.Enabled = true;

			}
			catch (Exception ex)
			{

				throw ex;
			}
		}

		// <summary>
		// Manipula o evento editar do web form
		// </summary>
		// <param name="sender">Objeto disparador de evento</param>
		// <param name="e">Argumento do evento</param>
		protected void btnEditar_Click(object sender, EventArgs e)
		{
			// Habilita os campos para edição
			Util.HabilitarCampos(true, this.panelCad);

			// Trava apenas os text box da PK
			this.txtCadIdAgenda.Enabled = false;

			// Trava botão de edição
			this.btnEditar.Enabled = false;

			// Trava botão de exclusao
			this.btnExcluir.Enabled = false;

			// Trava botão de novo
			this.btnNovo.Enabled = false;

			// Habilita o botão salvar
			this.btnSalvar.Enabled = true;

			this.txtCadAssunto.Focus();
		}

		protected void btnNovo_Click(object sender, EventArgs e)
		{
			//Limpa formulario, para a entrada de novo registro
			Util.LimparCampos(this.panelCad);
			// Habilita os campos para edição
			Util.HabilitarCampos(true, this.panelCad);

			this.ltCadastradoPor.Text = "";
			this.ltEditadoPor.Text = "";
			this.ltDataCadastro.Text = "";
			this.ltDataEdicao.Text = "";

			// Limpa Agendaxusuario
			Util.LimparCampos(this.panelAgendaxusuario);
			Util.HabilitarCampos(false, this.panelAgendaxusuario);
			this.ltCadAgendaxusuarioAgenda.Text = "";
			this.ltAgendaxusuarioCadastradoPor.Text = "";
			this.ltAgendaxusuarioDataCadastro.Text = "";
			this.ltAgendaxusuarioDataEdicao.Text = "";
			this.ltAgendaxusuarioEditadoPor.Text = "";
			this.grvCadAgendaxAgendaxusuario.DataSource = null;
			this.grvCadAgendaxAgendaxusuario.DataBind();
			this.panelAgendaxusuario.Enabled = false;
			this.btnCadAgendaxusuarioSalvar.Enabled = false;
			this.btnCadAgendaxusuarioEditar.Enabled = false;
			this.btnCadAgendaxusuarioExcluir.Enabled = false;
			this.btnCadAgendaxusuarioNovo.Enabled = false;

			// Trava apenas os text box da PK
			this.txtCadIdAgenda.Enabled = false;

			// Trava botão de edição
			this.btnEditar.Enabled = false;

			// Trava botão de exclusao
			this.btnExcluir.Enabled = false;

			// Trava botão de novo
			this.btnNovo.Enabled = false;

			// Habilita o botão salvar
			this.btnSalvar.Enabled = true;

			this.txtCadAssunto.Focus();

		}

		protected void btnExcluir_Click(object sender, EventArgs e)
		{
			//Declara objetos
			AgendaVO agendaVO = null;

			try
			{
				//Cria objeto
				agendaVO = AgendaVO.CreateVO();
				agendaVO.idAgenda = Int32.Parse(this.txtCadIdAgenda.Text);

				// Remove Agendaxusuario
				List<AgendaxusuarioVO> agendaxusuarioVOs = this.SgiDAOT.getAgendaxusuarios(null, agendaVO.idAgenda, null, null, null, null, null);
				foreach (AgendaxusuarioVO agendaxusuarioVO in agendaxusuarioVOs)
					this.SgiDAOT.delAgendaxusuario(agendaxusuarioVO);

				//Chama metodo para excluir registro
				this.SgiDAOT.delAgenda(agendaVO);

				// Exibe msg de sucesso ao salvar registro
				Util.ExibeAlert(this, "Registro excluido com sucesso!");

				//Popula grid atualizado
				this.btnPesquisa_Click(null, null);

				//Limpa formulario, apos salvar os dados
				Util.LimparCampos(this.panelCad);
				//Limpa Agendaxusuario
				Util.LimparCampos(this.panelAgendaxusuario);
				Util.HabilitarCampos(false, this.panelAgendaxusuario);
				this.panelAgendaxusuario.Enabled = false;
				this.ltCadAgendaxusuarioAgenda.Text = "";
				this.ltAgendaxusuarioCadastradoPor.Text = "";
				this.ltAgendaxusuarioDataCadastro.Text = "";
				this.ltAgendaxusuarioDataEdicao.Text = "";
				this.ltAgendaxusuarioEditadoPor.Text = "";
				this.grvCadAgendaxAgendaxusuario.DataSource = null;
				this.grvCadAgendaxAgendaxusuario.DataBind();
				this.btnCadAgendaxusuarioSalvar.Enabled = false;
				this.btnCadAgendaxusuarioEditar.Enabled = false;
				this.btnCadAgendaxusuarioExcluir.Enabled = false;
				this.btnCadAgendaxusuarioNovo.Enabled = false;

				this.ltCadastradoPor.Text = "";
				this.ltEditadoPor.Text = "";
				this.ltDataCadastro.Text = "";
				this.ltDataEdicao.Text = "";

				// Trava botão de edição
				this.btnEditar.Enabled = false;

				// Trava botão de exclusao
				this.btnExcluir.Enabled = false;

				// Desabilita o botão salvar
				this.btnSalvar.Enabled = false;

				// Habilita o botao novo
				this.btnNovo.Enabled = true;

			}
			catch (Exception ex)
			{

				throw ex;
			}
			
		}
		#region AgendaXAgendaxusuario
		protected void btnCadAgendaxusuarioSalvar_Click(object sender, EventArgs e)
		{

			//Declara objetos
			AgendaxusuarioVO agendaxusuarioVO = null;
			bool novoRegistro = false;

			try
			{
				//Verifica se o ID é nulo, se sim = cadastro novo
				if (string.IsNullOrEmpty(this.txtCadAgendaxusuarioIdAgendaXUsuario.Text))
				{
					agendaxusuarioVO = AgendaxusuarioVO.CreateVO();
					agendaxusuarioVO.cadastro = DateTime.Now;
					agendaxusuarioVO.cadastradoPor = usuarioVO.user;

					novoRegistro = true;

				}
				//Recupera dados para serem alterados
				else
				{
					//Recupera dados
					agendaxusuarioVO = this.SgiDAOT.getAgendaxusuario(Int32.Parse(this.txtCadAgendaxusuarioIdAgendaXUsuario.Text));
				}

				agendaxusuarioVO.idAgenda = Int32.Parse(this.txtCadIdAgenda.Text);
				agendaxusuarioVO.idUsuário = Int32.Parse(this.ddlCadAgendaxusuarioIdUsuário.SelectedValue);
				agendaxusuarioVO.avisar = this.ddlCadAgendaxusuarioAvisar.SelectedValue.Equals("S");
				agendaxusuarioVO.email = this.ddlCadAgendaxusuarioEmail.SelectedValue.Equals("S");
				if(string.IsNullOrEmpty(this.txtCadAgendaxusuarioEspecie.Text))
					agendaxusuarioVO.especie = null;
				else
					agendaxusuarioVO.especie = this.txtCadAgendaxusuarioEspecie.Text;
				if(this.ddlCadAgendaxusuarioIdAgendaTipo.SelectedValue.Equals("-1"))
					agendaxusuarioVO.idAgendaTipo = null;
				else
					agendaxusuarioVO.idAgendaTipo = Int32.Parse(this.ddlCadAgendaxusuarioIdAgendaTipo.SelectedValue);
				agendaxusuarioVO.edicao = DateTime.Now;
				agendaxusuarioVO.editadoPor = usuarioVO.user;

				//Chama metodo para salvar ou criar novo registro
				if (novoRegistro)
					agendaxusuarioVO.idAgendaXUsuario = (int)this.SgiDAOT.newAgendaxusuario(agendaxusuarioVO);
				else
					this.SgiDAOT.setAgendaxusuario(agendaxusuarioVO);

				// Exibe msg de sucesso ao salvar registro
				Util.ExibeAlert(this, "Registro salvo com sucesso!");

				//Popula grid atualizado
				this.btnPesquisa_Click(null, null);

				//Atualiza formulario, apos salvar os dados
				this.txtCadAgendaxusuarioIdAgendaXUsuario.Text = agendaxusuarioVO.idAgendaXUsuario.ToString();
				this.ltAgendaxusuarioCadastradoPor.Text = agendaxusuarioVO.cadastradoPor;
				this.ltAgendaxusuarioEditadoPor.Text = agendaxusuarioVO.editadoPor;
				this.ltAgendaxusuarioDataCadastro.Text = agendaxusuarioVO.cadastro.ToString("dd/MM/yyyy");
				this.ltAgendaxusuarioDataEdicao.Text = agendaxusuarioVO.edicao.ToString("dd/MM/yyyy");

				this.grvCadAgendaxAgendaxusuario.DataSource = this.SgiDAOT.getAgendaxusuarios(null, null, null, null, null, null, null);
				this.grvCadAgendaxAgendaxusuario.DataBind();

			}
			catch (Exception ex)
			{

				throw ex;
			}
		}

		protected void btnCadAgendaxusuarioCancelar_Click(object sender, EventArgs e)
		{
			//Volta para a tab page de pesquisa
			//this.tabAgenda.ActiveTabIndex = 0;

			// Desabilita os campos para edição
			Util.HabilitarCampos(false, this.panelAgendaxusuario);

			// Destrava botão de edição
			this.btnCadAgendaxusuarioEditar.Enabled = (!string.IsNullOrEmpty(this.txtCadAgendaxusuarioIdAgendaXUsuario.Text));

			// Destrava botão de exclusao
			this.btnCadAgendaxusuarioExcluir.Enabled = (!string.IsNullOrEmpty(this.txtCadAgendaxusuarioIdAgendaXUsuario.Text));

			// Detrava botão de novo
			this.btnCadAgendaxusuarioNovo.Enabled = true;

			// Desabilita o botão salvar
			this.btnCadAgendaxusuarioSalvar.Enabled = false;

		}

		protected void btnCadAgendaxusuarioEditar_Click(object sender, EventArgs e)
		{
			// Habilita os campos para edição
			Util.HabilitarCampos(true, this.panelAgendaxusuario);

			// Trava apenas os text box da PK
			this.txtCadAgendaxusuarioIdAgendaXUsuario.Enabled = false;

			// Trava botão de edição
			this.btnCadAgendaxusuarioEditar.Enabled = false;

			// Trava botão de exclusao
			this.btnCadAgendaxusuarioExcluir.Enabled = false;

			// Trava botão de novo
			this.btnCadAgendaxusuarioNovo.Enabled = false;

			// Habilita o botão salvar
			this.btnCadAgendaxusuarioSalvar.Enabled = true;

		}

		protected void btnCadAgendaxusuarioExcluir_Click(object sender, EventArgs e)
		{
			//Declara objetos
			AgendaxusuarioVO agendaxusuarioVO = null;

			try
			{
				//Cria objeto
				agendaxusuarioVO = AgendaxusuarioVO.CreateVO();
				agendaxusuarioVO.idAgendaXUsuario = Int32.Parse(this.txtCadAgendaxusuarioIdAgendaXUsuario.Text);

				//Chama metodo para excluir registro
				this.SgiDAOT.delAgendaxusuario(agendaxusuarioVO);

				// Exibe msg de sucesso ao salvar registro
				Util.ExibeAlert(this, "Registro excluido com sucesso!");

				//Limpa formulario, apos salvar os dados
				Util.LimparCampos(this.panelAgendaxusuario);
				Util.HabilitarCampos(false, this.panelAgendaxusuario);
				this.grvCadAgendaxAgendaxusuario.DataSource = this.SgiDAOT.getAgendaxusuarios(null, null, null, null, null, null, null);
				this.grvCadAgendaxAgendaxusuario.DataBind();

				this.ltAgendaxusuarioCadastradoPor.Text = "";
				this.ltAgendaxusuarioEditadoPor.Text = "";
				this.ltAgendaxusuarioDataCadastro.Text = "";
				this.ltAgendaxusuarioDataEdicao.Text = "";

				// Trava botão de edição
				this.btnCadAgendaxusuarioEditar.Enabled = false;

				// Trava botão de exclusao
				this.btnCadAgendaxusuarioExcluir.Enabled = false;

				// Desabilita o botão salvar
				this.btnCadAgendaxusuarioSalvar.Enabled = false;

				// Habilita o botao novo
				this.btnCadAgendaxusuarioNovo.Enabled = true;

			}
			catch (Exception ex)
			{

				throw ex;
			}
			
		}
		protected void btnCadAgendaxusuarioNovo_Click(object sender, EventArgs e)
		{
			//Limpa formulario, para a entrada de novo registro
			Util.LimparCampos(this.panelAgendaxusuario);
			// Habilita os campos para edição
				Util.HabilitarCampos(true, this.panelAgendaxusuario);

			this.ltAgendaxusuarioCadastradoPor.Text = "";
			this.ltAgendaxusuarioEditadoPor.Text = "";
			this.ltAgendaxusuarioDataCadastro.Text = "";
			this.ltAgendaxusuarioDataEdicao.Text = "";

			// Trava apenas os text box da PK
			this.txtCadAgendaxusuarioIdAgendaXUsuario.Enabled = false;

			// Trava botão de edição
			this.btnCadAgendaxusuarioEditar.Enabled = false;

			// Trava botão de exclusao
			this.btnCadAgendaxusuarioExcluir.Enabled = false;

			// Trava botão de novo
			this.btnCadAgendaxusuarioNovo.Enabled = false;

			// Habilita o botão salvar
			this.btnCadAgendaxusuarioSalvar.Enabled = true;

		}

		protected void imgbCadAgendaxusuarioVisualizar_Click(object sender, ImageClickEventArgs e)
		{
			// Declara objetos
			AgendaxusuarioVO agendaxusuarioVO = null;
			int idAgendaXUsuario = 0;

			try
			{
				//Recupera os argumentos com o ID do objeto
				string[] argumentos = ((ImageButton)sender).CommandArgument.Split(';');
				idAgendaXUsuario = Int32.Parse(argumentos[0]);

				//Recupera o objeto
				agendaxusuarioVO = this.SgiDAOT.getAgendaxusuario(idAgendaXUsuario);

				this.txtCadAgendaxusuarioIdAgendaXUsuario.Text = agendaxusuarioVO.idAgendaXUsuario.ToString();
				this.ddlCadAgendaxusuarioIdUsuário.SelectedValue = agendaxusuarioVO.idUsuário.ToString();
				this.ddlCadAgendaxusuarioAvisar.SelectedValue = (agendaxusuarioVO.avisar==null?" ":(agendaxusuarioVO.avisar.Value?"S":"N"));
				this.ddlCadAgendaxusuarioEmail.SelectedValue = (agendaxusuarioVO.email==null?" ":(agendaxusuarioVO.email.Value?"S":"N"));
				this.txtCadAgendaxusuarioEspecie.Text = agendaxusuarioVO.especie;
				if(agendaxusuarioVO.idAgendaTipo==null)
					this.ddlCadAgendaxusuarioIdAgendaTipo.SelectedValue = "-1";
				else
					this.ddlCadAgendaxusuarioIdAgendaTipo.SelectedValue = agendaxusuarioVO.idAgendaTipo.Value.ToString();
				this.ltAgendaxusuarioCadastradoPor.Text = agendaxusuarioVO.cadastradoPor;
				this.ltAgendaxusuarioEditadoPor.Text = agendaxusuarioVO.editadoPor;
				this.ltAgendaxusuarioDataCadastro.Text = agendaxusuarioVO.cadastro.ToString("dd/MM/yyyy");
				this.ltAgendaxusuarioDataEdicao.Text = agendaxusuarioVO.edicao.ToString("dd/MM/yyyy");

				//Desabilita campos para edição
				Util.HabilitarCampos(false, this.panelAgendaxusuario);

				//Desabilita botão salvar
				this.btnCadAgendaxusuarioSalvar.Enabled = false;

				//Habilita botão editar
				this.btnCadAgendaxusuarioEditar.Enabled = true;

				//Habilita botão excluir
				this.btnCadAgendaxusuarioExcluir.Enabled = true;

				//Habilita botão novo
				this.btnCadAgendaxusuarioNovo.Enabled = true;

			}
			catch (Exception ex)
			{

				throw ex;
			}
		}

		#endregion

	}
}
